package main

import (
	"fmt"
	"io"
	"os"
)

func main() {
	////fmt.Println(os.Getwd())
	////os.Mkdir("./z_demo/demo_os_io_buifo/demo03/test", 0755)
	//
	//// 打开一个已存在的文件，获取文件描述符
	//file, err := os.OpenFile("./z_demo/demo_os_io_buifo/demo03/example.txt", os.O_APPEND, 0644)
	//if err != nil {
	//	fmt.Println("Error opening file:", err)
	//	return
	//}
	//defer file.Close()
	//
	//// 获取文件描述符
	//fd := file.Fd()
	//
	//// 使用文件描述符创建一个新的文件对象
	//newFile := os.NewFile(fd, "./z_demo/demo_os_io_buifo/demo03/new_example.txt")
	//
	//// 写入一些内容到新文件中
	//_, err = newFile.WriteString("Hello from new file!\n")
	//if err != nil {
	//	fmt.Println("Error writing to new file:", err)
	//	return
	//}
	//
	//fmt.Println("Data written to new file.")

	temp, err := os.MkdirTemp("./z_demo/demo_os_io_buifo/demo03", "*")
	fmt.Println(temp)
	if err != nil {
		panic(err)
	}

	createTemp, err := os.CreateTemp("./z_demo/demo_os_io_buifo/demo03", "*.txt")
	fmt.Println(createTemp)
	if err != nil {
		panic(err)
	}
	fmt.Println(os.TempDir())

	fmt.Println(createTemp.Name(), 1)
	fmt.Println(createTemp.Write([]byte("Hello from createTemp城中城\r\ndsf")))
	createTemp.Sync()
	buffer := make([]byte, 1024)
	createTemp.Seek(0, io.SeekStart)
	createTemp.Read(buffer)
	fmt.Println(string(buffer))

	createTemp.Truncate(10)
	err = createTemp.Close()
	if err != nil {
		panic(err)
	}

}
